Authentication (認證) 與 Authorization (授權) 是兩個常被混淆的觀念。Authentication (認證)是確認你是誰,而Authorization (授權) 是確認你可以做甚麼。
而對於認證的重要知識點包含:MFA、OAuth、JWT、OTP、AD認證、SSO
MFA(Multi factor authentication,多因子認證) 是指除了帳號密碼之外,也需要完成其他的認證方式。以因避免帳號密碼洩漏等單一風險造成攻擊者成功登入系統。
OAuth 2.0 (Open Authorization) 是一個開放性的認證協議,資源提供者可使用此一標準委由認證提供者進行客戶端的身分認證。客戶端完成身分認證後,認證提供者發給Access Token。其記錄該使用者的身分與可存取的Scope。Access Token到期後,可更新token而無須重新進行身分認證流程。
JWT (Json Web Token) 是一種授權令牌格式,其核心觀念將授權資訊與簽章內容以一個開放的標準共同存放,讓這個授權資訊易於交換。由於JWT同時紀錄認證與授權資訊,因此伺服器端無須存放使用者的認證狀態資料,而達到無狀態 (Stateless) 的身分認證。
OTP (One time password,一次性密碼) 為一種特殊的密碼機制。當用戶端想要使用系統時,於通過身分認證後,取得一次性的密碼。該密碼在使用後或到期後隨即註銷,以避免密碼外洩的風險。
AD (Active Directory) 是微軟提供的身分認證服務。由於企業內部大多使用整合AD認證登入的Windows作業系統,因此AD Server中,皆已存在各使用者的身分資料。若整合AD認證登入,可減少使用者需要額外記憶帳號密碼。
SSO (Single Sign-On,單一登入) 是一種身分認證方案。當使用者於其他平台登入後,透過安全的身分資料交換與認證服務,信任其他平台所提供的身分認證資料。